package com.cykj.page02;

import java.io.FileInputStream;
import java.io.IOException;

/**
 * @BelongsProject: HandTomcat
 * @BelongsPackage: com.cykj.page02
 * @Author: 阿隆
 * @CreateTime: 2025-10-23 20:36
 * @Description: 静态资源处理器
 * @Version: 1.0
 */
public class StaticResourceHandler {
    /*
     * 给一个静态资源路径
     *   获取文件的字节数据
     *   以及对应的媒体类型
     * */

    //静态资源路径
    private String filePath;

    //媒体类型
    private String media;

    //文件的字节数据
    private byte[] fileByte;


    public StaticResourceHandler(String filePath) {
        this.filePath = filePath;

        getFileMedia();

        getByte();
    }


    /**
     * @Description: 获取文件的字节数据
     * @Param: []
     * @return: void
     */
    private void getByte() {
        try {
            FileInputStream fis = new FileInputStream(filePath);
            fileByte = new byte[fis.available()];
            fis.read(fileByte);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }


    /**
     * @Description: 获取文件的媒体类型
     * @Param: []
     * @return: void
     */
    private void getFileMedia() {
        if (filePath.endsWith("html")) {
            media = "text/html";
        } else if (filePath.endsWith("css")) {
            media = "text/css";
        } else if (filePath.endsWith("js")) {
            media = "application/x-javascript";
        } else if (filePath.endsWith("png")) {
            media = "image/png";
        }
    }


    public String getFilePath() {
        return filePath;
    }

    public void setFilePath(String filePath) {
        this.filePath = filePath;
    }

    public String getMedia() {
        return media;
    }

    public void setMedia(String media) {
        this.media = media;
    }

    public byte[] getFileByte() {
        return fileByte;
    }

    public void setFileByte(byte[] fileByte) {
        this.fileByte = fileByte;
    }
}
